package com.itjavas.controller;

import org.springframework.stereotype.Controller; // 导入 Controller控制器
import org.springframework.web.bind.annotation.RequestMapping; //  用于映射请求 URL
import org.springframework.web.bind.annotation.RequestMethod; //  指定请求方法
import org.springframework.web.bind.annotation.ResponseBody; // 将方法返回值直接写入 HTTP 响应体

import java.io.BufferedReader; // 用于读取文件
import java.io.FileReader; // 类，用于读取文件
import java.io.IOException; // 类，用于处理输入输出异常

@Controller
@RequestMapping("/user") // 将 "/user" 映射到该控制器类上，表示该类下的所有请求都以 "/user" 开头
public class MyController {

    @RequestMapping(value = "/rest", method = RequestMethod.GET) // 将 "/user/rest" 映射到 rest 方法上，指定请求方法为 GET
    public String rest(String username, String password) throws IOException { // 控制器方法，接收用户名和密码参数，并抛出 IOException 异常
        BufferedReader reader = new BufferedReader(new FileReader(getClass().getClassLoader().getResource("UserList.txt").getFile())); // 使用 BufferedReader 读取类路径下的 "login.txt" 文件

        String line; // 声明字符串变量 line，用于存储文件中的每一行内容
        while ((line = reader.readLine()) != null) { // 循环读取文件的每一行，直到文件末尾
            String[] parts = line.split(":"); // 将每一行按 ":" 分割成数组 parts
            if (parts.length == 2) { // 如果数组长度为 2，说明格式正确
                String storedUsername = parts[0]; // 获取存储的用户名
                String storedPassword = parts[1]; // 获取存储的密码
                if (storedUsername.equals(username) && storedPassword.equals(password)) { // 比较输入的用户名和密码与文件中存储的是否一致
                    System.out.println(username + " , " + password); // 在控制台打印用户名和密码
                    return "success"; // 如果用户名和密码匹配成功，则返回视图 "success.jsp"
                }
            }
        }
        return "fault"; // 如果用户名和密码匹配失败，则返回视图名称 "fault" 或其他适当的视图名称
    }
}